Rust - map, and, or, any, all
map, and_then for Option
- Some(vec) 에 대해 왜 map을 두번?
- map은 배열에 대해만 있느넥 아니라 클로져 함수 제공을 위한 역할
- map이 안전하게 해줌
// .map(|some| some+1)
fn main() {
let out = Some(vec![8,9,10]);
let first = out
.map(|v| {
v.iter().map(|n| n+1).collect::<Vec<_>>()
});
println!("{first:?}");
// json 없으면 생략할때 이런식으로 많이 함
let s = out.map(|v| match v.len() {
0 => None,
1 => Some(vec![v[0]]),
_ => Some(v)
});
// 계속 some, some 이런식으로 나오는 경우...
// and_then을 쓴다. === flatmap
}
and, or
.and() / .or()
배열 같은 위치에 포개주는 기능
vec1 = vec![true, false, true]
vec2 = vec![false, false, false]
vec1.and(vec2) // false, false, false
any, all
any(|&c| char == check)
하나라도 조건 확인all
전부다 이 조건을 만족?
reverse iterators